import axios from "axios"
import { Message } from 'element-ui';
import router from "../router/index";

// 请求超时时间
axios.defaults.timeout = 20000

axios.defaults.baseURL = 'http://1.14.48.193:8080/';


//添加请求拦截器
axios.interceptors.request.use(
    config => {
        // 判断是否存在token，如果存在将每个页面header都添加token
        if (sessionStorage.getItem('token')) {
            // 请求头配置全局token
            config.headers.token = sessionStorage.getItem('token');
        }
        return config;
    },
    error => {
        // 对请求错误做些什么
        Vue.prototype.$message.error('请求超时')
        return Promise.reject(error);
    })

// 响应拦截器
axios.interceptors.response.use(success => {
    //业务逻辑错误
    if (success.status && success.status == 200) {
        if (success.data.code == 500 || success.data.code == 401 || success.data.code == 403) {
            Message.error({ message: success.data.message });
            return;
        }else if(success.data.code == 50000){//token失效返回码
            Message.error({message:"身份已失效，请重新登录！"});
            //清楚token
            localStorage.removeItem('token');
            //跳转
            router.replace('/login');
        }else if(success.data.code == 500220){
            Message.error({message:success.data.message});
        }else if(success.data.code == 500218){
            Message.error({message:success.data.message});
        }else if(success.data.code == 500213){
            Message.error({message:success.data.message});
            router.push('/login');
        }
    }
    return success.data;
}, error => {
    if (error.response.code == 504 || error.response.code == 404) {
        Message.error({ message: '服务器error!!' });
    } else if (error.response.code == 403) {
        Message.error({ message: '权限不足，请联系管理员！' });
    } else if (error.response.code == 401) {
        Message.error({ message: '尚未登录，请登录' });
        router.replace('/');
    } else {
        if (error.response.data.message) {
            Message.error({ message: error.response.data.message });
        } else {
            Message.error({ message: error });
        }
    }
    return;
});

